题目:对于一个字符串str,把前面任意部分挪到后面形成的字符串叫作str的旋转词。比如str=”12345”,其旋转词有”23451”、”34512”、”45123”、”51234”。给定两个字符串a和b,判断a和b是否互为旋转词。
实现
1.如果a、b长度不同,则返回false.
2.对于长度相同的a和b,生成String b2 = b + b,即b2是两个b拼在一起的结果,如果b2中包含a,则说明b是a的旋转词。比如a=”cdab”,b=”abcd”,则b2=”abcdabcd”,可见b2[0,..3]=”abcd”,b2[1,..4]=”bcda”,…b2[I,…i+3]都是b的旋转词。由此可见,如果一个字符串b的长度为N,则b2的任意长度为N的子串都是b的旋转词,并且b2包含b的所有旋转词。
1 | public class IsRotation { |